#include<iostream>
#include<signal.h>
#include<unistd.h>
#include<sys/wait.h>
#include<sys/types.h>

// void handler(int signo)
// {
//     std::cout<<"... get a signal: "<<signo<<std::endl;
//     alarm(5);
// }
// int main()
// {

//     signal(8,handler);
//     std::cout<<"div before: "<<std::endl;
//     sleep(5);
//     int a=10;
//     a/=0;
//     std::cout<<"div after"<<std::endl;
//     sleep(2);
// }

int main()
{
    pid_t id=fork();
    
    if(id==0)
    {
        int cnt=200;
        //child
        while(cnt)
        {
            cnt--;
            std::cout<<"i am child process "<<getpid()<<std::endl;
        }
    }
    int status=0;
    pid_t rd=waitpid(id,&status,0);
    if(rd==id)
    {
        std::cout<<"child quit info,"<<rd<<" exit code: "<<((status>>8)&0xFF)<<std::endl;
    }

}